    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    // 函数内部的this指向谁 看函数调用位置的调用形式
    /*
        函数的调用形式:
            1. 普通调用 fn()
                this指向window
            2. 隐式调用 obj.fn()
                this指向obj
            3. 显式调用 fn.call()  fn.apply()
                this指向call或apply传入的第一个参数
            4. 构造调用 new fn()
                this指向构造出来的实例对象
      */
    function test(){
        //this: 函数的内部特征
        console.log(this)
    }

    var obj = {
        name:"damu",
        test:test
    }

    // test(1,2,3)
    // obj.test()
    // test.call({xx:"xx"},1,2,3)
    // test.apply({yy:"yy"},[2,3,4])

    var t = new test();
    t.xx = "123"
</script>
</html>